package com.springboot.wisdom.common.util;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @Description
 * @Author LY L
 * @Date 2024-11-05
 */
@Data
@ToString
@NoArgsConstructor
@Component
public class SystemOSUtil {

    private static String windowsFilePath;
    private static String windowsFileWebUrl;

    private static String linuxFilePath;
    private static String linuxFileWebUrl;


    /**
     * 根据当前项目所在的操作系统选择不同的路径。
     */
    private static String filePath;
    /**
     * 根据当前项目所在的操作系统选择不同的网络URL。
     */
    private static String fileWebUrl;

    public static boolean isWindows() {
        return System.getProperty("os.name").toUpperCase().contains("WINDOWS");
    }

    public static String getFilePath() {
        if (isWindows()) {
            filePath = windowsFilePath;
            fileWebUrl = windowsFileWebUrl;
        } else {
            filePath = linuxFilePath;
            fileWebUrl = linuxFileWebUrl;
        }
        return filePath;
    }

    public static String getFileWebUrl() {
        return fileWebUrl;
    }

    /**
     * 默认不修改上传位置。【不能为静态】
     *
     * @param windowsFilePath
     */
    @Value("${file.windowsLocal.path}")
    public void setWindowsFilePath(String windowsFilePath) {
        SystemOSUtil.windowsFilePath = windowsFilePath;
    }

    /**
     * 默认不修改上传位置。【不能为静态】
     *
     * @param linuxFilePath
     */
    @Value("${file.linuxLocal.path}")
    public void setLinuxFilePath(String linuxFilePath) {
        SystemOSUtil.linuxFilePath = linuxFilePath;
    }

    @Value("${file.windowsLocal.url}")
    public void setWindowsFileWebUrl(String windowsFileWebUrl) {
        SystemOSUtil.windowsFileWebUrl = windowsFileWebUrl;
    }

    @Value("${file.linuxLocal.url}")
    public void setLinuxFileWebUrl(String linuxFileWebUrl) {
        SystemOSUtil.linuxFileWebUrl = linuxFileWebUrl;
    }
}
